package com.liuyi.tools.kits;

import cn.hutool.core.date.Week;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil;

import java.math.BigDecimal;


/**
 * @author Mr.fmy
 * @version 1.0.0
 * @ClassName ToolUtils
 * @Description TODO 常用 工具集
 * @createTime 2019/10/11 14:44
 */
public class ToolKit {

    /**
     * 拼接盐值+密码
     */
    public static String saltPass(String salt, String pass) {
        return salt + pass;
    }

    /**
     * 普通 MD5 拼接 盐值 加密
     */
    public static String md5Salt(String salt, String pass) {
        return SecureUtil.md5(saltPass(salt, pass));
    }

    /**
     * 追加数组
     *
     * @param pre  追加的字符串
     * @param strs 数组
     */
    public static void preAddStrs(String pre, String... strs) {
        for (int i = 0; i < strs.length; i++) {
            strs[i] = pre + strs[i];
        }
    }

    /**
     * 1-7 对应 周一-周日
     */
    public static String week(Integer value) {
        BizExceptionKit.throwBusiness(value < 1 || value > 7, "value 不符合要求");
        value = value == 7 ? 1 : value + 1;
        return Week.of(value).toChinese("周");
    }

    public static BigDecimal toBigDecimal(Object value, BigDecimal defult) {
        if (ObjectUtil.isEmpty(value)) {
            return defult;
        }
        return NumberUtil.toBigDecimal(value.toString());
    }

    public static Integer toInt(Object val, int defaultVal) {
        if (ObjectUtil.isEmpty(val)) {
            return defaultVal;
        }
        if (val instanceof Double) {
            BigDecimal bigDecimal = new BigDecimal((Double) val);
            return bigDecimal.intValue();
        } else {
            return NumberUtil.parseInt(val.toString());
        }
    }
}
